//
// Created by 86131 on 2023/10/24.
//

#ifndef SHUJUJIEGUO_QUEUE_H
#define SHUJUJIEGUO_QUEUE_H
#include "ArrayList.h"
template<typename T>
class queue {
private:
    ArrayList<T> list;

public:
    // 入队
    void push(const T& item) {
        list.add(item);
    }

    // 出队
    void pop() {
        if (!list.empty()) {
            list.remove(0);
        } else {
            std::cout << "队列为空，无法出队。" << std::endl;
        }
    }

    // 获取队头元素
    T& front() {
        return list.get(0);
    }

    // 判断队列是否为空
    bool empty() const {
        return list.getSize() == 0;
    }

    // 获取队列的大小
    int getSize() const {
        return list.getSize();
    }
};


#endif //SHUJUJIEGUO_QUEUE_H
